The present disclosure relates generally to the field of test automation tools, and more particularly to the automation of graphical user interface validation. A graphical user interface (“GUI”) is a type of user interface that allows users to interact with electronic devices through graphical icons and visual indicators, such as secondary notation, as opposed to text-based interfaces, typed command labels, or text navigation. In software development, graphical user interface testing involves testing a product's GUI to ascertain how the application and the user interact and whether the application performs properly. This typically includes how the application handles keyboard and mouse input and how it displays a GUI widget, such as screen text, images, buttons, menus, dialog boxes, icons, and toolbars.
The testing of Web, Java®, Windows®, mobile, and other applications that utilizes GUIs may be automated (e.g. programmatic and replayed buttons clicks, text input, etc.) using conventional solutions. However, manual testing is typically required to ensure that GUIs are rendered properly as well as are easy to read and manipulate by a user. Potential issues may include a widget that is sized too small for a human to notice and/or click, display of truncated text, and layouts that can lead to a poor user experience. In addition, such issues can become compounded when GUIs are tested across different operating systems, browsers, languages, and/or locales. Current solutions involve both manual and automated testing solutions. For example, manual testing requires a tester to view and compare each aspect of the GUI. Image based automation can involve a comparison of the expected and actual bitmap images.